home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / MYIO.ZIP / MYLINE.H < prev    next >
C/C++ Source or Header  |  1995-11-02  |  1KB  |  44 lines

  1. // myLine.h
  2. //
  3. // Donated to the public domain; no restrictions on reuse or abuse apply.
  4. // by David Nugent, 7th June, 1993.
  5. // Simple line input class for istream to demonstrate input of a complete
  6. // line rather than whitespace separated tokens (the default for operator<<
  7. // for char* and other built-in types).
  8. // Works by overloading operator>> for a customised class - this functionality
  9. // is easily incorporated into your favourite String class
  10. //
  11.  
  12. # if !defined(_myLine_h)
  13. # define _myLine_h 1
  14.  
  15. # define AUTO_GROW 1            // Allow autogrowth of buffer to fit
  16. # define ALLOC_LEN 80           // Standard length & growth increment
  17.  
  18.     // Class declaration
  19.  
  20. class myLine
  21. {
  22.  
  23.   public:
  24.  
  25.     myLine (short buflen =ALLOC_LEN);
  26.     myLine (char * usebuf, short buflen =ALLOC_LEN);
  27.     ~myLine (void);
  28.                                        // Get buffer address
  29.     char const * buf (void) const { return mybuf; }
  30.                                        // Conversion operators
  31.     char const * operator() (void) const { return mybuf; } // Explicit cast
  32.     operator char const * (void) const { return mybuf; }   // Implicit cast
  33.                                        // istream operator>>
  34.     friend istream & operator>> (istream &, myLine &);
  35.  
  36.   private:
  37.  
  38.     short len, xalloc;
  39.     char * mybuf;
  40.  
  41. };
  42.  
  43. # endif     // _myLine_h
  44.